package com.zhuzg.common.config;

import lombok.extern.slf4j.Slf4j;

/**
 * 维护数据源的上下文环境
 */
@Slf4j
public class TenantContext {

    // 使用ThreadLocal来存储当前线程的数据源名称(租户标识)，保证多线程情况下，各自的数据源互不影响
    private static ThreadLocal<String> tenantId = ThreadLocal.withInitial(() -> "default");

    public static void setTenantId(String id) {
        tenantId.set(id);
        log.info("已切换到数据源:{}", id);
    }

    public static String getTenantId() {
        return tenantId.get();
    }

    public static void clear() {
        tenantId.remove();
        log.info("已切换回默认数据源");
    }
}

